#ifndef MUCMAS_USER_INC_GAME_H
#define MUCMAS_USER_INC_GAME_H

#include <stdint.h>

#define GAME_BEGIN 0
#define GAME_START 0
#define GAME_RANK 1
#define GAME_SPEED 2
#define GAME_USER 3
#define GAME_END 3

typedef struct{
  struct{
    uint8_t into : 1; // 是否进入子页面
    uint8_t outo : 1; // 是否退出当前页面页面
    uint8_t mode : 3; // 当前光标所在的行
    uint8_t speed : 3;
  }; // 1 byte
  struct{
    uint8_t name[16];
    uint16_t score;
  }rank[3]; // 54 byte
  uint8_t user[16]; // 16 byte
  // 角色名字的长度, 不包括'\0'
  // 最大值为12, 最小值为0
  uint8_t len; // 1 byte
  // 占位用的
  uint8_t buf[952]; // 952 byte
}Game_HandleTypeDef;

extern const uint32_t Game_addr;

void Game_Init(void* handle);
void Game_Reinit(void* handle);
void Game_InitShow(void* handle);
void Game_ShowLine(void* handle);
void Game_Run(void* handle);

void Game_M_L(void* handle);
void Game_M_O(void* handle);
void Game_U_LJ(void* handle);
void Game_D_LJ(void* handle);
void Game_L_LJ(void* handle);
void Game_R_LJ(void* handle);

#endif
